<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Hubris</title>
    <link rel="preload" href="https://oxide.computer/fonts/NeueHaasGrotDisp-Roman.woff2" as="font" type="font/woff2" crossorigin="true">
    
    <style>
        @font-face {
            font-family: "Neue Haas Grotesk Display";
            src: url("https://oxide.computer/fonts/NeueHaasGrotDisp-Roman.woff2");
		}
        body {
            font-family: Neue Haas Grotesk Display, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
            background-color: #0b1418;
			color: #FFFFFF;
            font-size: 1.1rem;
            line-height: 1.4;
            letter-spacing: 0.03em;
            font-weight: 400;

			max-width: 1080px; 
			margin: 0 auto !important; 
			float: none !important; 
        }
        .green {
            color: #48D597;	
        }
        .yellow {
            color: #F5CF65;
        }
        h1 {
            font-size: 4.5rem;
            line-height: 1.05;
            letter-spacing: 0.02em;
            font-weight: 300;
        }
        h2 {
            font-size: 1.6rem;
            line-height: 1.3;
            letter-spacing: 0.03em;
            font-weight: 300;
        }
		a {
			color: #48D597;
		}
    </style>
</head>

<body>

	<h1 class="green">Hubris</h1>
	<h2 class="yellow">A small open-source operating system for deeply-embedded computer systems.</h2>
	<p>Hubris is an operating system for microcontrollers developed by <a href="https://oxide.computer/">Oxide Computer Company</a>. We also have a <a href="https://oxide.computer/blog/hubris-and-humility">blog post announcing Hubris</a> on the Oxide blog.</p>
	<p>Hubris provides preemptive multitasking, memory isolation between
separately-compiled components, the ability to isolate crashing drivers and
restart them without affecting the rest of the system, and flexible
inter-component messaging that eliminates the need for most syscalls &mdash; in about
2000 lines of Rust. The Hubris debugger, Humility, allows us to walk up to a
running system and inspect the interaction of all tasks, or capture a dump for
offline debugging.</p>

<p>However, Hubris may be more interesting for what it doesn't have. There are no
operations for creating or destroying tasks at runtime, no dynamic resource
allocation, no driver code running in privileged mode, and no C code in the
system. This removes, by construction, a lot of the attack surface normally
present in similar systems.</p>
<p>For more details:
	<ul><a href="https://github.com/oxidecomputer/hubris">Hubris source code</a></ul>
	<ul><a href="reference/">Hubris reference documentation</a></ul>
	<ul><a href="https://github.com/oxidecomputer/humility">Humility source code</a></ul>
</p>
</body>
</html>
